package com.vlong.town.service.information;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.vlong.town.entity.information.Information;
import com.vlong.town.mapper.information.InformationMapper;

/**
 * @author Assassin
 */
@Service
public class InformationService{

	// Fields

	@Autowired
	private InformationMapper informationMapper;// DAO接口

	// Methods

   /**
	* 添加
	* @param informationId 主键
	* @param state 删除标志位[0-是 1-否]   
	* @param status 状态标志位
	* @param title 标题
	* @param content 内容
	* @param desc 描述
	* @param thumbnail 缩略图
	* @param createTime 创建时间
	* @param updateTime 修改时间
	* @return Long informationId 添加后的数据库主键值
	*/
	@Transactional
	public Long add(Long informationId, Integer state, Integer status, String title, String content, String desc, String thumbnail, Long createTime, Long updateTime) {
		// 构造参数实体
		Information information = new Information();
		information.setInformationId(informationId);// Set 主键
		information.setState(state);// Set 删除标志位[0-是 1-否]   
		information.setStatus(status);// Set 状态标志位
		information.setTitle(title);// Set 标题
		information.setContent(content);// Set 内容
		information.setDesc(desc);// Set 描述
		information.setThumbnail(thumbnail);// Set 缩略图
		information.setCreateTime(createTime);// Set 创建时间
		information.setUpdateTime(updateTime);// Set 修改时间
		// 调用DAO接口
		this.informationMapper.insert(information);
		return information.getInformationId();
	}

   /**
	* 删除
	* @param informationId 主键值
	*/
	@Transactional
	public void delete(Long informationId) {
		// 调用DAO接口
		this.informationMapper.delete(informationId);
	}

   /**
	* 更新
	* @param informationId 主键
	* @param state 删除标志位[0-是 1-否]   
	* @param status 状态标志位
	* @param title 标题
	* @param content 内容
	* @param desc 描述
	* @param thumbnail 缩略图
	* @param createTime 创建时间
	* @param updateTime 修改时间
	*/
	@Transactional
	public void edit(Long informationId, Integer state, Integer status, String title, String content, String desc, String thumbnail, Long createTime, Long updateTime,String reason) {
		// 构造参数实体
		Information information = new Information();
		information.setInformationId(informationId);// Set 主键
		information.setState(state);// Set 删除标志位[0-是 1-否]   
		information.setStatus(status);// Set 状态标志位
		information.setTitle(title);// Set 标题
		information.setContent(content);// Set 内容
		information.setDesc(desc);// Set 描述
		information.setThumbnail(thumbnail);// Set 缩略图
		information.setCreateTime(createTime);// Set 创建时间
		information.setUpdateTime(updateTime);// Set 修改时间
		information.setReason(reason);
		// 调用DAO接口
		this.informationMapper.update(information);
	}

   /**
	* 主键查询
	* @param informationId 主键值
	* @return Information 实体
	*/
	@Transactional(readOnly = true)
	public Information queryById(Long informationId) {
		// 调用DAO接口
		return this.informationMapper.selectById(informationId);
	}

   /**
	* 根据条件查询列表
	* @param informationId 主键
	* @param state 删除标志位[0-是 1-否]   
	* @param status 状态标志位
	* @param title 标题
	* @param content 内容
	* @param desc 描述
	* @param thumbnail 缩略图
	* @param createTime 创建时间
	* @param updateTime 修改时间
	* @return List<Information> 实体List
	*/
	@Transactional(readOnly = true)
	public List<Information> queryList(Long informationId, Integer state, Integer status, String title, String content, String desc, String thumbnail, Long createTime, Long updateTime) {
		// 构造参数实体
		Information information = new Information();
		information.setInformationId(informationId);// Set 主键
		information.setState(state);// Set 删除标志位[0-是 1-否]   
		information.setStatus(status);// Set 状态标志位
		information.setTitle(title);// Set 标题
		information.setContent(content);// Set 内容
		information.setDesc(desc);// Set 描述
		information.setThumbnail(thumbnail);// Set 缩略图
		information.setCreateTime(createTime);// Set 创建时间
		information.setUpdateTime(updateTime);// Set 修改时间
		// 调用DAO接口
		return this.informationMapper.selectList(information);
	}

}